﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace HA.MT3DMS.DomainLayer
{
    [Serializable]
    public class MTOutputControl:ICloneable
    {
        public MTOutputControl()
        {

        }

        PrintType _cN = PrintType.NotPrint;

        public PrintType CN
        {
            get { return _cN; }
            set { _cN = value; }
        }


        PrintType _nP = PrintType.NotPrint;

        public PrintType NP
        {
            get { return _nP; }
            set { _nP = value; }
        }

        PrintType _rF= PrintType.NotPrint;

        public PrintType RF
        {
            get { return _rF; }
            set { _rF = value; }
        }

        PrintType _dP = PrintType.NotPrint;

        public PrintType DP
        {
            get { return _dP; }
            set { _dP = value; }
        }

        bool _isSavUcn=true;

        public bool IsSavUcn
        {
            get { return _isSavUcn; }
            set { _isSavUcn = value; }
        }

        bool _isSavMass = true;

        public bool IsSavMass
        {
            get { return _isSavMass; }
            set { _isSavMass = value; }
        }

        TimeStepType _stepsType=TimeStepType.SpecifiedInterval;

        public TimeStepType StepsType
        {
            get { return _stepsType; }
            set { _stepsType = value; }
        }

        List<double> _timesteps = new List<double>();

        public List<double> Timesteps
        {
            get { return _timesteps; }
            set { _timesteps = value; }
        }

        int _interval = 1;

        public int Interval
        {
            get { return _interval; }
            set { _interval = value;
            if (_interval <= 0)
            {
                _interval = 1;
            }
            }
        }

        #region ICloneable

        public object Clone()
        {
            MTOutputControl mt = (MTOutputControl)this.MemberwiseClone();

            mt._timesteps =new List<double> ();

            mt._timesteps.AddRange(this._timesteps);


            return mt;
           

        }

        #endregion
    }

}
